博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序开发系列六:微信框架API的调用
阅读量:6314 次
发布时间:2019-06-22

本文共 2580 字,大约阅读时间需要 8 分钟。

hot3.png

微信小程序开发系列教程

通过前面五个章节的介绍,大家对微信小程序的视图和控制器,微信调试器,以及如何在微信控制器里编写JavaScript函数来响应微信小程序的用户事件已经有了一个最基本的认识了。我们现在来开发一些和微信应用相关的知识,进一步巩固以前学到的知识。

本文实现的效果:

在微信小程序上显示一个按钮:“获取头像昵称”。

点击之后,微信小程序会自动通过微信框架提供的API把当前点击这个按钮的微信用户的明细,比如昵称,头像,所在省份,城市等信息取回来,并且显示在小程序页面上, 如下图所示。

视图设计:

{
{userInfo.nickName}}
{
{userInfo.city}}
{
{userInfo.country}}
{
{userInfo.province}}

这个视图里一共有6个UI元素,其中1个button元素,1个image元素和4个text元素。button元素负责响应用户点击事件,调用微信框架的API读取用户明细。

1个image元素负责显示点击该按钮的微信用户头像,剩下的4个text元素显示微信用户的明细。后5个UI元素的绑定路径均为userInfo,而userInfo的数据是点了button后通过调用微信API读取的。

这个userInfo是我们在控制器index.js里定义的数据模型:

Page({   data: {         userInfo: {}   }});

我们回过头来看本文这个小程序最重要的button元素,它有两个属性:

open-type="getUserInfo" :说明该button点击之后,自动调用微信框架的API:getUserInfo

bindgetuserinfo="jerry_getUserInfo":指定了一个回调函数的名称,该回调函数在我们的控制器index.js里实现。当微信框架的API调用成功取回微信用户明细后,会将微信用户明细作为输入参数,调用我们写的这个回调函数。

jerry_getUserInfo: function(e) {app.globalData.userInfo = e.detail.userInfo      this.setData({           userInfo: e.detail.userInfo      });}

在小程序能够访问的上下文里,有一个全局变量wx,里面包含了所有微信框架暴露出来的API:

在微信小程序官网上有关于这个wx的所有成员说明:

我们再试试另外一个API:getSystemInfo

首先在小程序视图里定义一个按钮,绑定一个JavaScript函数jerry_systeminfo, 用于触发getSystemInfo:

<button bindtap = "jerry_systeminfo"> 获取系统信息 </button>

然后定义七个UI元素,用于显示getSystemInfo的返回结果。

{
{systeminfo.model}}
{
{systeminfo.pixelRatio}}
{
{systeminfo.windowWidth}}
{
{systeminfo.windowHeight}}
{
{systeminfo.language}}
{
{systeminfo.version}}
{
{systeminfo.platform}}

wx.getSystemInfo返回的结果作为一个输入参数,自动传入到我们定义的success回调函数里,然后再用setData设置到视图的数据结构里。

jerry_systeminfo: function(){   var that = this;   wx.getSystemInfo({         success: function (res) {              var systeminfo = {};              systeminfo.model = res.model;              systeminfo.pixelRatio = res.pixelRatio;              systeminfo.windowWidth = res.windowWidth;              systeminfo.windowHeight = res.windowHeight;              systeminfo.language = res.language;              systeminfo.version = res.version;              systeminfo.platform = res.platform;              try {                    that.setData({                          systeminfo: systeminfo                 });              }               catch(e){                        console.log(e);                 }         }  })},

最后我在我的Android三星手机上点击“获取系统信息”之后,就显示出了我三星手机的型号SM-C7010等详细信息。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

转载于:https://my.oschina.net/u/3771578/blog/2250152

你可能感兴趣的文章
WCF访问iis元数据库失败--解决方法
查看>>
php-curl小记
查看>>
8086PC机的内存地址空间分配
查看>>
PHP用户输入安全过滤和注入攻击检测
查看>>
is_uploaded_file函数引发的问题
查看>>
mysql 原理 ~ DDL之在线DDL
查看>>
【windows】dos命令查看某个文件夹下所有文件目录列表
查看>>
磨刀不误砍柴工!vs2010快捷键大全
查看>>
app测试与web测试的区别
查看>>
排序的辅助空间问题
查看>>
树的度
查看>>
Sharepoint the file is locked for use domain\user edit.文件被锁定,解锁方式
查看>>
FastJson序列化Json自定义返回字段,普通类从spring容器中获取bean
查看>>
详细聊聊k8s deployment的滚动更新(二)
查看>>
连麦互动直播方案全实践3:网易云信连麦互动的实现方案
查看>>
UIBezierPath 的使用介绍
查看>>
ASP.NET MVC and jqGrid 学习笔记 2-如何从本地获得数据
查看>>
导航,头部,CSS基础
查看>>
Linux初识
查看>>
相约深圳~敏捷之旅
查看>>